Smallfoot: Modular Automatic Assertion Checking with Separation Logic

نویسندگان

  • Josh Berdine
  • Cristiano Calcagno
  • Peter W. O'Hearn
چکیده

Separation logic is a program logic for reasoning about programs that manipulate pointer data structures. We describe Smallfoot, a tool for checking certain lightweight separation logic specifications. The assertions describe the shapes of data structures rather than their detailed contents, and this allows reasoning to be fully automatic. The presentation in the paper is tutorial in style. We illustrate what the tool can do via examples which are oriented toward novel aspects of separation logic, namely: avoidance of frame axioms (which say what a procedure does not change); embracement of “dirty” features such as memory disposal and address arithmetic; information hiding in the presence of pointers; and modular reasoning about concurrent programs.

منابع مشابه

Semi-automatic Proofs about Object Graphs in Separation Logic

Published correctness proofs of garbage collectors in separation logic to date depend on extensive manual, interactive formula manipulations. This paper shows that the approach of symbolic execution in separation logic, as first developed by Smallfoot, also encompasses reasoning about object graphs given by the reachability of objects. This approach yields semi-automatic proofs of two central g...

متن کامل

Heap-Dependent Expressions in Separation Logic

Separation logic is a popular specification language for imperative programs where the heap can only be mentioned through pointsto assertions. However, separation logic’s take on assertions does not match well with the classical view of assertions as boolean, side effectfree, potentially heap-dependent expressions from the host programming language familiar to many developers. In this paper, we...

متن کامل

A Deep Embedding of a Decidable Fragment of Separation Logic in HOL

Smallfoot is a tool to automatically check separation logic specifications of sequential programs. It uses a decidable fragment of separation logic. In this paper, a deep embedding of a slightly different decidable fragment of separation logic inspired by Smallfoot is presented. Moreover, a HOL implementation of a decision procedure for entailments in this logic is described. The main focus of ...

متن کامل

Sufficient Preconditions for Modular Assertion Checking

Assertion checking is the restriction of program verification to validity of program assertions. It encompasses safety checking, which is program verification of safety properties, like memory safety or absence of overflows. In this paper, we consider assertion checking of program parts instead of whole programs, which we call modular assertion checking. Classically, modular assertion checking ...

متن کامل

Sound Modular Verification of C Code Executing in an Unverified Context Extended Version

Over the past decade, great progress has been made in the static modular verification of C code by means of separation logic-based program logics. However, the runtime guarantees offered by such verification are relatively limited when the verified modules are part of a whole program that also contains unverified modules. In particular, a memory safety error in an unverified module can corrupt ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

متن کامل
عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005